package com.itheima.service.impl;


import com.itheima.Metric;
import com.itheima.dao.AccountDao;
import com.itheima.domain.Account;
import com.itheima.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

/*原本的对象也叫委托方  实现原有的业务逻辑,然后靠外面动态代理生成一个新的代理对象,把
它放进去,柔和成一个全新的功能强大的对象出来再织入spring容器中*/
@Service("accountService")
public class AccountServiceImpl implements AccountService {
    @Autowired  //依赖注入 ----当中的对象注入,对象注入和属性注入都叫做依赖注入
    private AccountDao accountDao;
    @Override

    public void transfer(int from, int to, double money) {
        System.out.println("假设 我调用了dao代码......执行了转账...");
        accountDao.add(to,money);
        accountDao.sub(from,money);
    }

    @Override
    @Metric
    public void delete(int id) {
        System.out.println("假设 我调用了dao代码......执行了删除...");
        accountDao.delete(id);

    }

    @Override
    @Metric
    public void add(Account account) {
        System.out.println("假设 我调用了dao代码......执行了添加..");
        accountDao.save(account);

    }

    @Override
    public Account findById(int id) {

        System.out.println("假设我们调用dao代码 执行查询");
        return accountDao.findById(id);

    }
}
